import request from '@/utils/request'

/**
 * 获取房源分配列表
 * @param {Object} query 查询参数
 * @returns {Promise}
 */
export function getAssignList(query) {
  return request({
    url: '/house/assign/list',
    method: 'get',
    params: query,
    timeout: 20000 // 增加超时时间
  })
}

/**
 * 获取房源列表（用于分配选择）
 * @param {Object} query 查询参数
 * @returns {Promise}
 */
export function getHouseList(query) {
  return request({
    url: '/house/info/list',
    method: 'get',
    params: query
  })
}

/**
 * 获取待分配的房源列表
 * @returns {Promise}
 */
export function getUnassignedHouses() {
  return request({
    url: '/house/assign/unassigned',
    method: 'get'
  })
}

/**
 * 分页获取待分配的房源列表
 * @param {number} pageNum 页码
 * @param {number} pageSize 每页数量
 * @returns {Promise}
 */
export function getUnassignedHousesPage(pageNum = 1, pageSize = 10) {
  return request({
    url: '/house/assign/unassigned/page',
    method: 'get',
    params: {
      pageNum,
      pageSize
    }
  })
}

/**
 * 获取经纪人列表（用于分配选择）
 * @param {Object} query 查询参数
 * @returns {Promise}
 */
export function getAgentList(query) {
  return request({
    url: '/agent/info/list',
    method: 'get',
    params: query
  })
}

/**
 * 手动分配房源给经纪人
 * @param {number} houseId 房源ID
 * @param {number} agentId 经纪人ID
 * @param {string} remark 备注
 * @returns {Promise}
 */
export function assignHouse(houseId, agentId, remark) {
  return request({
    url: `/house/assign/manual/${houseId}/${agentId}`,
    method: 'post',
    data: { remark }
  })
}

/**
 * 取消房源分配
 * @param {number} houseId 房源ID
 * @param {number} agentId 经纪人ID
 * @returns {Promise}
 */
export function cancelAssign(houseId, agentId) {
  return request({
    url: `/house/assign/${houseId}/${agentId}`,
    method: 'delete'
  })
}

/**
 * 自动分配房源
 * @param {number} houseId 房源ID
 * @returns {Promise}
 */
export function autoAssignHouse(houseId) {
  return request({
    url: `/house/assign/auto/${houseId}`,
    method: 'post'
  })
}

/**
 * 获取房源的分配情况
 * @param {number} houseId 房源ID
 * @returns {Promise}
 */
export function getHouseAssignList(houseId) {
  return request({
    url: `/house/assign/house/${houseId}`,
    method: 'get'
  })
}

/**
 * 获取经纪人负责的房源列表
 * @param {number} agentId 经纪人ID
 * @param {number} pageNum 页码
 * @param {number} pageSize 每页数量
 * @returns {Promise}
 */
export function getAgentHouseList(agentId, pageNum = 1, pageSize = 10) {
  return request({
    url: `/house/assign/agent/${agentId}`,
    method: 'get',
    params: {
      pageNum,
      pageSize
    }
  })
}

// 获取分配列表
const fetchAssignList = async () => {
  loading.value = true
  try {
    console.log('请求参数:', queryParams)
    const res = await getAssignList(queryParams)
    console.log('响应结果:', res)
    if (res.code === 200) {
      assignList.value = res.data.records || res.data
      total.value = res.data.total || res.data.length
    } else {
      ElMessage.error(res.msg || '获取分配列表失败')
    }
  } catch (error) {
    console.error('获取分配列表失败详细信息:', error)
    if (error.response) {
      console.error('错误响应数据:', error.response.data)
      console.error('错误状态码:', error.response.status)
    }
    ElMessage.error(`获取分配列表失败: ${error.message}`)
  } finally {
    loading.value = false
  }
} 